home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / MISC / DSP4TEST.ZIP / TST2.ASM < prev    next >
Encoding:
Assembly Source File  |  1993-12-09  |  2.2 KB  |  84 lines

  1. ; lowpass filter left audio channel (cutoff 900Hz)
  2.  
  3.     nolist
  4.     include 'leonid'
  5.     list
  6.  
  7.  
  8. M    equ    160
  9. buflen    equ    3*M
  10.  
  11.  
  12.     system    'dsp4'
  13.  
  14.     org    p:user_code
  15.  
  16.     move            #buffer+2,r7
  17.     move            #buflen*4-1,m7
  18.  
  19.     move            #buffer,r2
  20.     move            #4-1,n2
  21.     move            #buflen*4-1,m2
  22.  
  23.     ctrlcd    1,r2,buflen,LINEI,0.0,0.0,LINEO|HEADP,0.0,0.0
  24.     opencd    8
  25.  
  26. ; wait for one complete block
  27. loop    waitblk r2,buflen,M
  28.  
  29. ; then filter the left channel
  30.     move            #buflen*4-1,m0
  31.     move            #-4,n0
  32.     move            #lotaps,r4
  33.     move            #<lolen-1,m4
  34.  
  35.     move            r2,r0
  36.     do    #M,_endlpf
  37.     clr    a
  38.     move            x:(r0)+n0,x0  y:(r4)+,y0
  39.     rep    #lolen-1
  40.     mac    x0,y0,a     x:(r0)+n0,x0  y:(r4)+,y0
  41.     macr    x0,y0,a     (r2)+
  42.     move            a,y:(r2)+n2
  43.     move            r2,r0
  44. _endlpf
  45.  
  46.     jmp    <loop
  47.  
  48.  
  49.     org    x:user_data
  50.  
  51. buffer    dsm    buflen*4
  52.  
  53.  
  54.     org    y:user_data
  55.  
  56.     dsm    buflen*4
  57.  
  58. ; 900 Hz lowpass filter generated using Parks-McClellan algorithm
  59. ;   sampling rate   8000 Hz
  60. ;   passband edge    840 Hz
  61. ;   stop band edge   960 Hz
  62. ;   filter lenght     79 taps
  63.     dsm    256
  64. lolen    equ    79
  65. lotaps    dc     1.619394e-02,5.805688e-03,3.155693e-03,-1.500173e-03,-6.545769e-03
  66.     dc    -9.963868e-03,-1.022255e-02,-7.061145e-03,-1.754771e-03,3.332559e-03
  67.     dc     5.765334e-03,4.199639e-03,-8.617942e-04,-7.138900e-03,-1.151400e-02
  68.     dc    -1.147496e-02,-6.426490e-03,1.780802e-03,9.467491e-03,1.274443e-02
  69.     dc     9.432186e-03,3.507424e-04,-1.070496e-02,-1.840716e-02,-1.827196e-02
  70.     dc    -9.051937e-03,6.112294e-03,2.066623e-02,2.704929e-02,2.031219e-02
  71.     dc     9.089151e-04,-2.437167e-02,-4.415325e-02,-4.639930e-02,-2.320264e-02
  72.     dc     2.545267e-02,9.059131e-02,1.564397e-01,2.052803e-01,2.232958e-01    ; center tap
  73.     dc     2.052803e-01,1.564397e-01,9.059131e-02,2.545267e-02,-2.320264e-02
  74.     dc    -4.639930e-02,-4.415325e-02,-2.437167e-02,9.089151e-04,2.031219e-02
  75.     dc     2.704929e-02,2.066623e-02,6.112294e-03,-9.051937e-03,-1.827196e-02
  76.     dc    -1.840716e-02,-1.070496e-02,3.507424e-04,9.432186e-03,1.274443e-02
  77.     dc     9.467491e-03,1.780802e-03,-6.426490e-03,-1.147496e-02,-1.151400e-02
  78.     dc    -7.138900e-03,-8.617942e-04,4.199639e-03,5.765334e-03,3.332559e-03
  79.     dc    -1.754771e-03,-7.061145e-03,-1.022255e-02,-9.963868e-03,-6.545769e-03
  80.     dc    -1.500173e-03,3.155693e-03,5.805688e-03,1.619394e-02
  81.  
  82.  
  83.     end
  84.